超级实用wireshark的使用技巧!

您所在的位置:网站首页 wireshark 使用 超级实用wireshark的使用技巧!

超级实用wireshark的使用技巧!

#超级实用wireshark的使用技巧!| 来源: 网络整理| 查看: 265

这是我参与更文挑战的第2天,活动详情查看: 更文挑战

抓包 1.只抓包头

一般能抓到的每个包(称为“帧”更准确,但是出于表达习惯,本书可能会经常用“包”代替“帧”和“分段”)的最大长度为1514字节,启用了Jumbo Frame(巨型帧)之后可达9000字节以上,而大多数时候我们只需要IP头或者TCP头就足够分析了。在Wireshark上可以这样抓到包头。

新版本的wireshark(2.x以后)的Options对话框变化比较大,限制单包的方法是:捕获->选项,找到要抓包的接口,选中它,找到列表标题中的捕获长度(B),单击对应栏,发现变为可输出状态,在这里输入限制的单包大小即可(同旧版本的Limi each packet to)"Limit each packet to"的值。

一般设个偏大的数字:80字节,也就是说每个包只抓前80字节。这样TCP层、网络层和数据链路层的信息都可以包括在内。

如果问题涉及应用层,就应该再加上应用层协议头的长度。如果你像我一样经常忘记不同协议头的长度,可以输入一个大点的值。即便设成200****字节,也比1514字节小多了。

用tcpdump命令抓包时可以用"s"参数达到相同效果。比如以下命令只抓etho上每个包的前80字节,并把结果存到/tmp/tcpdump.cap文件中。

[root@server/]#tcpdump -i eth0 -s 80 -w /tmp/tcpdump.cap

2.只抓必要的包

可以在开始捕获之前应用捕获过滤器,这样就可以过滤掉不需要的数据包

用tcpdump命令抓包时,也可以用"host"参数达到相同效果。比如以下命令只抓与1.1.1.1通信的包,并把结果存到**/tmp/tepdump.cap**文件中。

[root@server-1/]#tcpdump -i eth0 host 1.1.1.1 -w /tmp/tcpdump.cap

注意:设置过滤捕获器之前务必三思,以免把有用的包也过滤掉,尤其是容易被忽略的广播包。当然有时候再怎么考虑也会失算,比如我有一次把对方的IP地址设为filter,结果一个包都没抓到。最后只能去掉filter再抓,才发现是NAT(网络地址转换)设备把对方的IP地址改掉了。

3.标记数据包

抓的包除了要小,最好还能为每步操作打上标记。这样的包一目了然,赏心悦目。比如

要在Windows上抓一个包含三步操作的问题,我会这样抓。

ping -n 1 -l 1 ping -n 1 -l 2 ping -n 1 -l 3 ping -n 1 -l 4

byte的数目表示是第几步,这样就算在步骤很多的情况下也不会混乱。

个性化设置 1.时间设置

我经常需要参照服务器上的日志时间,找到发生问题时的网络包。所以就把Wireshark的时间调成跟服务器一样的格式。

单击视图****->时间显示格式->选择对应的时间格式,就可以实现此设置。

2.自定义数据包颜色

不同类型的网络包可以自定义颜色,比如网络管理员可能会把OSPF等协议或者与Spanning Tree Protocol(生成树协议)相关的网络包设成最显眼的颜色。

而文件服务器的管理员则更关心FTP,SMB和NFS协议的颜色。我们可以通过视图->着色规则来设置颜色。

如果已经有一套非常适合你工作内容的配色方案,可以请从导出,然后导入到你的Wireshark里。

3.更多设置

更多的设置可以在编辑->首选项窗口中完成。

这个窗口的设置精度可以达到一些协议的细节。比如在此窗口单击Protocols-->TCP就可以看到多个TCP相关选项,将鼠标停在每一项上都会有详细介绍。假如经常要对Sequence Number做加减运算,不妨选中Relative sequence numbers,这样会使Sequence number看上去比实际小很多。

过滤

很多时候,解决问题的过程就是层层过滤,直至找到关键包。前面已经介绍过抓包时的Capture Filter功能了。其实在包抓下来之后,还可以进一步过滤,而且这一层的过滤功能更加强大。

要说过滤的作用与技巧,就算专门写一本小册子都不为过。篇幅所限,本文只能“过滤”出最适合初学者的部分。

1.过滤规则

最简单的用法就是直接输入要过滤的协议,比如直接输入arp就会过滤出arp的数据包

2.追踪流

IP地址加port号是最常用的过滤方式。除了手工输入ip.addreq

&& tcporteq ****之类的过滤表达式。

Wireshark还提供了更快捷的方式:右键单击感兴趣的包,选择追踪流(选择TCP还是UDP要视传输层协议而定)

就可以自动过滤,而且该Stream的对话内容会在新弹出的窗口中显示出来。

经常有人在论坛上问,Wireshark是按照什么过滤出一个TCP/UDP Stream的?

答案就是:两端的IP加port。

单击Wireshark的统计->Conversations,再单击TCP或者UDP标签就可以看到所有的Stream。

3.鼠标帮助过滤

我们有时因为Wireshark而苦恼,并不是因为它功能不够,而是强大到难以驾驭。比如在过滤时,有成千上万的条件可供选择,但怎么写才是合乎语法的?虽然www.wireshark.org/docs/dfref/提供了参考,但经常查找毕竟太费时费力了。

Wireshark考虑到了这个需求,右键单击Wireshark上感兴趣的内容,然后选择作为过滤器应用****->选中,就会在Fiter 中自动生成过滤表达式。在有复杂需求的时候,还可以选择And,Or等选项来生成一个组合的过滤表达式。

让wireshark自动分析

有些类型的问题,我们根本不需要研究包里的细节,直接交给Wireshark分析就行了。

1.单击Wireshark的分析->专家信息,就可以在不同标签下看到不同级别的提示信息。比如重传的统计、连接的建立和重置统计,等等。在分析网络性能和连接问题时,我们经常需要借助这个功能。

2.单击统计****->Service Response Time,再选定协议名称,可以得到响应时间的统计表。我们在衡量服务器性能时经常需要此统计结果。

3.单击统计->TCP 流图形,可以生成几类统计图。

4.单击统计->捕获文件属性,可以看到一些统计信息,比如平均流量等,这有助于我们推测负载状况。比如图中的网络包才35kbit/s,说明流量低得很。

5.可以通过统计->流量图更为直观的看到通信的过程

可以先编写一个过滤的规则

在流量图窗口选择限制显示过滤器就可以看到两个IP直接的通信了

最容易上手的搜索功能

与很多软件一样,Wireshark也可以通过"Control+F"搜索关键字。假如我们怀疑包里含有"error"一词,就可以按下"Control+F"之后选中"String",单选按钮,然后在Filter中输入"error"进行搜索,很多应用层的错误都可以靠这个方法锁定问题包。

将IP地址解析为域名

进入编辑->首选项->Name Resolution->resolve network(IP) addresses将IP地址解析为域名



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3